/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.pebom.empresa;

import GUI.BuscaProdutoPanel;
import GUI.BuscaClientePanel;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import net.java.dev.genesis.annotation.Action;
import net.java.dev.genesis.annotation.DataProvider;
import net.java.dev.genesis.annotation.Form;
import net.java.dev.genesis.ui.ActionInvoker;

import org.pebom.util.*;
/**
 *
 * @author Drury
 */

@Form
public class VendasForm {
    int codigo = 1;
    static String textCod;
    static String textCodProduto;
    static String textDataVenda;
    static String textNomeCliente;
    static String textNomeProd;
    static String textQtdProd;
    
    ProdutoVendido produto;
    
    
    static ArrayList<ProdutoVendido> tabelaProdutos;

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
    
    

    public String getTextCod() {
        return textCod;
    }

    public void setTextCod(String textCod) {
        VendasForm.textCod = textCod;
    }

    public String getTextCodProduto() {
        return textCodProduto;
    }

    public static void setTextCodProduto(String textCodProduto) {
        VendasForm.textCodProduto = textCodProduto;
    }

    public String getTextDataVenda() {
        return textDataVenda;
    }

    public void setTextDataVenda(String textDataVenda) {
        VendasForm.textDataVenda = textDataVenda;
    }

    public String getTextNomeCliente() {
        return textNomeCliente;
    }

    public static void setTextNomeCliente(String textNomeCliente) {
        VendasForm.textNomeCliente = textNomeCliente;
    }

    public String getTextNomeProd() {
        return textNomeProd;
    }

    public static void setTextNomeProd(String textNomeProd) {
        VendasForm.textNomeProd = textNomeProd;
    }

    public String getTextQtdProd() {
        return textQtdProd;
    }

    public void setTextQtdProd(String textQtdProd) {
        VendasForm.textQtdProd = textQtdProd;
    }

    

    public ArrayList<ProdutoVendido> getTabelaProdutos() {
        return tabelaProdutos;
    }

    public void setTabelaProdutos(ArrayList<ProdutoVendido> produtos) {
        this.tabelaProdutos = produtos;
    }

    public ProdutoVendido getProduto() {
        return produto;
    }

    public void setProduto(ProdutoVendido produto) {
        this.produto = produto;
    }
    
    
    
    @DataProvider(objectField="produto" ,  widgetName="tabelaProdutos" , callOnInit=true)
    public List populaTabela() throws SQLException {
         if (tabelaProdutos==null)
            return tabelaProdutos = new ArrayList<ProdutoVendido>();
        else 
            return tabelaProdutos;
    }
    
//     @DataProvider(objectField="textCod" ,  widgetName="textCod" , callOnInit=true)
//    public String novoCodigo() throws SQLException {
//         textCod = VendasForm.textCod;
//         return textCod;
//    }
    
    @Action
    public void novaVenda() throws SQLException, Exception {
     //   setTextCod(Integer.toString(VendaDAO.getInstance().buscaCod()+1));
//        java.util.Date dataUtil = new java.util.Date();    
//        java.sql.Date dataSql = new java.sql.Date(dataUtil.getTime());   
//        setTextDataVenda(dataUtil.toString());
        
        //ActionInvoker.invoke(this, "insereDados");
        //ActionInvoker.invoke(this, "populaTabela");
        
        
        java.util.Date dataUtil = new java.util.Date();    
        java.sql.Date dataSql = new java.sql.Date(dataUtil.getTime());   
        
        setTextDataVenda(dataSql.toString());
       
        //setTextCod(Integer.toString(codigo));
        codigo = VendaDAO.getInstance().buscaCod() + 1;
        setTextCod(Integer.toString(codigo));
        // ActionInvoker.refresh(MainWindow.getInstance());
        codigo++;
    }
    
    @Action
    public void buscarCliente(){
        Diversos.getInstance().getMain().showPanel(new BuscaClientePanel());
    }
    
    
    @Action
    public void buscarProd(){
        Diversos.getInstance().getMain().showPanel(new BuscaProdutoPanel());
    }
    
    @Action
    public void addProd() throws Exception{
        ProdutoVendido novo= new ProdutoVendido();
        Produto aux = BuscaProdutoForm.getP().clone();
        novo.setId(aux.getId());
        novo.setCategoria(aux.getCategoria());
        novo.setDescricao(aux.getDescricao());
        novo.setNome(aux.getNome());
        novo.setPreco(aux.getPreco());
        novo.setQuantidade(Integer.parseInt(getTextQtdProd()));
        tabelaProdutos.add(novo);
        ActionInvoker.invoke(this, "populaTabela");
    }
   
    @Action
    public void removerProd() throws Exception {
        tabelaProdutos.remove(produto);
        System.out.println("Produto Removido");
        ActionInvoker.invoke(this, "populaTabela");
    }
    
}
